﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Xml.Linq;

namespace ProjectBase.Core
{
    /// <summary>
    ///     IPublishingProvider base implementation
    /// </summary>
    public abstract class PublishingProviderBase : IPublishingProvider
    {
        public abstract void Init(XElement settings);
        public virtual void Shutdown() { }

        public abstract void Publish(object reporter, string message, Exception exception);
        public abstract void Publish(object reporter, Severity severity, object message, params object[] args);
        public abstract void Publish(object reporter, Func<string> message, Severity severity);
    }
}